Microsoft Home Microsoft Home

UNIX のセキュリティ


 8/12     Apache パッチのセキュリティ対策

FrontPage Apache パッチは次の 2 つの部分から構成されています。

  • FrontPage Apache モジュール。FrontPage クライアントから FrontPage Server Extensions 実行可能ファイルへの要求に割り込み、セキュリティ チェックを実行し、SUID ルートの権限を取得した fpexe スタブ プログラムに要求をリダイレクトします。サーバー内の各要求に割り込むことによって、スクリプト エイリアスが不要になります。
  • fpexe プログラム。FrontPage Apache モジュールから作成要求を受け取り、詳細なセキュリティ チェックを実行し、Web サーバー プロセスのユーザー ID を作成中の FrontPage Web の所有者に変更し、特定の場所に格納された FrontPage Server Extensions 実行可能ファイルのコピーを起動します。

 

fpexe スタブ プログラムは、Web サーバー プロセスのユーザー ID を Web の所有者に変更するために " ルート" への SUID に設定しなければならないので、このスタブ プログラムがセキュリティ ホールとして利用されないように、さまざまなセキュリティ チェックが実行されます。セキュリティ チェックでは、次の項目が確認されます。

  • fpexe スタブ プログラムとそのディレクトリに適切な所有権および権限が設定されているかどうか。
  • Server Extensions 実行可能ファイルとそのディレクトリに適切な所有権および権限が設定されているかどうか。
  • 作成中の Web コンテンツ領域のユーザー ID が有効かどうか。
  • 作成中の Web コンテンツ領域のグループ ID が有効かどうか。
  • FrontPage Server Extensions CGI 実行可能ファイル以外の CGI プログラムがシステムで実行されていないかどうか。
  • 環境変数 (PATH を含む) が消去されており、あらかじめ選択した承認リストに記載されている変数だけが渡されること。
  • Web サーバーだけが FrontPage Server Extensions 実行可能ファイルを実行できること。
  • Web サーバー プロセスが初期化されるときに動的に生成される 128 バイトのキー値が fpexe プログラムに渡され、確認され、それによって Web サーバーだけが fpexe を実行できること。

 

128 バイトのキー値は Web サーバーが初期化されるときに動的に生成され、確認用に suidkey.* ファイルに格納されます。このファイルは "ルート" だけが読み込めるディレクトリに格納され、"ルート" だけが読み書きすることができます。ルートだけが suidkey.* ファイルに書き込めるのは、Web サーバー プロセスの初期化が " ルート" で実行され、初期化が完了した後で別のユーザー ID ("www" など) に切り替わるからです。suidkey.* のファイル名の接尾語は、Web サーバーのプロセス グループ ID になります。

動的なキー値の内容は、ps (process status) コマンドの出力の順列に基づいて、Web サーバーが初期化されるときに生成されます。生成されたキー値の内容は、/usr/local/frontpage/currentversion/apache-fp/suidkey に格納されている、管理者が管理するカスタム キー ファイルの内容を使って XOR 演算処理されます。このカスタム キー ファイルは、" ルート" だけが所有権と読み取り権限を持ち、少なくとも 8 バイトのデータを含む、実際に存在するファイルでなければなりません。

サーバー管理者はカスタム キー ファイルの内容を定期的に変更し、サーバーを再起動してキー値のセキュリティを保護する必要があります。

FrontPage Apache モジュールが要求を処理して FrontPage Server Extensions 実行可能ファイルを起動するときに、モジュールは暫定的に要求の確認処理を行い、fpexe スタブ プログラムに要求をリダイレクトします。サーバーが初期化されたときに生成された 128 バイトのキー値は、パイプを通じて fpexe に渡されるので、プログラム環境では見ることができません。128 バイトのキー値はパイプから fpexe に読み込まれ、Web サーバーが初期化されたときに動的に生成された suidkey.* ファイルの内容と比較されます。fpexe のユーザー ID は "ルート" に設定されているので、suidkey.* ファイルの内容にアクセスすることができます。たとえば、suidkey.* ファイルに正しいアクセス権が設定されている ("ルート" だけが読み込めるディレクトリ内にあり、"ルート" だけが読み込める) 場合、128 バイトのキー値が一致すると、fpexe は詳細なチェックを実行し、ユーザー ID、グループ ID、および呼び出し先の FrontPage Server Extensions 実行可能ファイルの所有権を確認します。

すべてのチェックがパスすると、fpexe はサーバー プロセスのユーザー ID とグループ ID を Web コンテンツの所有者の ID に切り替え、FrontPage Server Extensions 実行可能ファイルを実行します。1 つでもチェックがパスしなかった場合は、Web サーバーのログにエラーが書き込まれ、Server Extensions は実行されません。

FrontPage Apache モジュールのセキュリティ チェックは、Web サーバーの .htaccess ファイル セキュリティ システムに代わるものではありません。FrontPage 拡張 Web のセキュリティを守るために、両方のシステムを組み合わせて使うことができます。Web サーバーの .htaccess セキュリティは、FrontPage Server Extensions のユーザーが Web の登録されたユーザー、作成者、または管理者であることを確認することによって、Web のコンテンツに対するリモート アクセスを保護します。この標準レベルのセキュリティ チェックに加えて、FrontPage Apache モジュールのセキュリティ チェックを実行することによって、fpexe プログラムが Web サーバーへの不正なルート アクセスに利用されていないことを確認します。

" ルート" の権限を取得するプログラムはサーバー管理者にとって不安材料となるので、Microsoft では FrontPage Apache モジュールと fpexe スタブ プログラムのソース コードを公開しています。最新のソース コードは FrontPage 98 Server Extensions ダウンロード キットに収められています。ソース コードには、チェックの内容を説明する多くのコメントが記述されています。また、セキュリティ上安全でない構成であることを示すエラーが FrontPage Apache モジュールまたは fpexe によって記録された場合にとるべきリカバリ アクションも記載されています。


   8/12      トップ
 
  最終更新日 : 1999 年 4 月
©1999 Microsoft Corporation. All rights reserved. Terms of Use.